package main

import (
	"errors"

	"gitee.com/lyuanbo/stock-trade/internal"
	"gitee.com/lyuanbo/stock-trade/internal/pkg/logger"
	"github.com/judwhite/go-svc"
	"go.uber.org/zap"
)

func main() {
	// 日志
	log := logger.New()

	app := &App{logger: log}
	if err := svc.Run(app); err != nil {
		// output 暴露给外部调用者，便于定位问题，不应包含敏感信息
		log.Error("svc.Run", zap.String("output", err.Error()), zap.Error(errors.Unwrap(err)))
	}
}

type App struct {
	logger *zap.Logger
}

// Init 初始化服务
func (a *App) Init(env svc.Environment) error {
	return nil
}

// Start 启动服务后的操作
func (a *App) Start() error {
	internal.Run()
	return nil
}

// Stop 关闭服务之后的操作
func (a *App) Stop() error {
	return nil
}
